package com.rose.doorto.footbathdoor.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.rose.doorto.footbathdoor.pojo.Address;
import com.rose.doorto.footbathdoor.util.PageUtils;
import org.apache.ibatis.annotations.Param;

import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author lqc
 * @since 2024-07-11
 */
public interface AddressService extends IService<Address> {

    /**
     * 新增收货地址列表
     * @param address
     * @return
     */
    int insertAddress(Address address);

    /**
     * 设置默认地址
     * @param status
     * @return
     */
    int updateStatus(int status);

    /**
     * 获取当前用户的收货地址列表
     * @param userId
     * @return
     */
    List<Address> getAddressByUserId(IPage<Address> page, @Param("userId")Integer userId);

//    /**
//     * 获取当前用户的收货地址列表
//     *
//     * @param userId
//     * @return
//     */

    PageUtils getAddressPage(Map<String, Object> params);

    /**
     * 删除地址方法2
     * @param id
     * @return
     */
    int delete(String id);

    /**
     * 批量删除
     * @param ids
     * @return
     */
    String deleteBatch(List<String> ids);

    /**
     * 设置用户的默认收货地址
     * @param userId    用户身份ID
     * @param id        收货地址列表ID
     * @return
     */
    int setDefauleAddress(int userId,Integer id);

    /**
     * 取消默认地址的设置
     * @param userId
     * @param id
     * @return
     */
    int cancelDefauleAddress(int userId,Integer id);


    Address getDefauleAddressByUserId(Integer userId);

    PageUtils queryPage(Map<String, Object> params);


    /**
     * 分页查询我的收货地址列表
     * @param params
     * @param session
     * @return
     */
    PageUtils getCurrentAddressList(Map<String, Object> params, HttpSession session);
}
